# -*- coding:utf-8 -*-
import socket

# 创建udp套接字
UDP_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 127.0.0.1 本地回环地址 一般用于测试
# ip_port = ('127.0.0.1', 8888)

# 绑定服务端套接字
# UDP_socket.bind(ip_port)
UDP_socket.bind(('127.0.0.1', 5120))

# 接收客户端的数据      recvfrom() 方法能够返回两个数据,如果用变量名接收数据，需要用两个变量名
# msg 保存的是数据（信息）
# addr 保存的是客户端的地址
# recvfrom里面的参数表示能够接受的最大字符
# decode()解码,没有传参数默认utf-8
while True:
    msg, addr = UDP_socket.recvfrom(1024)  # 阻塞
    print(msg.decode(), addr)
    # 给客户端发送数据
    # 自己输入
    msg = input(">>: ").strip()
    # sendto() 也是需要传递两个数据
    # encode()编码，没有传参数默认utf-8
    UDP_socket.sendto(msg.encode(), addr)

# 关闭套接字
# UDP_socket.close()
